/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package muhnes.sizoo.controlador;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import muhnes.sizoo.dal.MunicipioDao;
import muhnes.sizoo.dal.MunicipioDaoImpl;
import muhnes.sizoo.dal.ZonaDao;
import muhnes.sizoo.dal.ZonaDaoImpl;
import muhnes.sizoo.modelo.Municipio;
import muhnes.sizoo.modelo.Zona;

/**
 *
 * @author Neotaku
 */
@ManagedBean(name = "zonaBean")
@ViewScoped
public class ZonaBean implements Serializable {
    
    private Zona zona;
    private List< Zona > listaZonas;
   
    private List< SelectItem > itemsRoles;
    private int municipio; 
    private char tipozona;

    /** Creates a new instance of ZonaBean */
    public ZonaBean() {
        zona = new Zona();
    }

    public Zona getZona() {
        return zona;
    }

    public void setZona(Zona zona) {
        this.zona = zona;
    }

    public List< Zona > getListaZonas() {
        if( listaZonas == null ) {
            ZonaDao dao = new ZonaDaoImpl();
            listaZonas = dao.buscarTodos();
        }
        return listaZonas;
    }
    
     public void setMunicipio(int municipio) {

 

           this.municipio = municipio;
           System.out.println(this.municipio);
           

     }
    
    
    
    public void prepararAdicion( ActionEvent event  ){
        zona = new Zona();
    }
    
    public void prepararModificacion( Zona zona ){
        this.zona = zona;
    }
    
    public void prepararEliminacion( Zona zona ){
        this.zona = zona;
    }

    public void agregarZona( ActionEvent event ){
        ZonaDaoImpl dao = new ZonaDaoImpl();
      
        zona.setHabilitado( Boolean.TRUE );
        dao.guardar( zona );
        recrearModelo();
    }
    
     public void habilitarZona( ActionEvent event ){
        ZonaDaoImpl dao = new ZonaDaoImpl();
        zona.setHabilitado( Boolean.TRUE );
        dao.actualizar( zona );
        recrearModelo();
    }
    

    public void actualizarZona( ActionEvent event ){
        ZonaDaoImpl dao = new ZonaDaoImpl();
        dao.actualizar( zona );
        recrearModelo();
    }
    
    public void eliminarZona( Zona zona ){
        ZonaDaoImpl dao = new ZonaDaoImpl();
        dao.eliminar( zona );
        recrearModelo();
    }
    

    
   public List< SelectItem > getItemsMunicipios() {
        if( itemsRoles == null ) {
            itemsRoles = new ArrayList< SelectItem >();
            MunicipioDao dao = new MunicipioDaoImpl();
            for( Municipio municipio : dao.buscarTodos() ) {
                SelectItem item = new SelectItem( municipio, municipio.getNombre() );
                itemsRoles.add( item );
            }
        }
        return itemsRoles;
    }
   
  

   
    
    void recrearModelo() {
        listaZonas = null;
        
    }

    /**
     * @return the municipio
     */
    public int getMunicipio() {
        return municipio;
    }

    /**
     * @return the tipozona
     */
    public char getTipozona() {
        return tipozona;
    }

    /**
     * @param tipozona the tipozona to set
     */
    public void setTipozona(char tipozona) {
        this.tipozona = tipozona;
    }

}


